package com.hhd.form.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 单据定义
 * @author tangzy
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("design_form_definition")
public class DesignFormDefinition implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.ID_WORKER_STR)
    private String id;

    /**
     * 单据名称
     */
    @TableField("form_name")
    private String formName;

    /**
     * form_key(开发使用)
     */
    @TableField("form_key")
    private String formKey;

    @TableField("table_name")
    private String tableName;

    /**
     * 下一个数据字段的索引
     */
    @TableField("field_last_index")
    private Integer fieldLastIndex;

    /**
     * 下一个明细表的索引
     */
    @TableField("sub_table_index")
    private Integer subTableIndex;

    /**
     * 是否是主表
     */
    @TableField("form_main")
    private Boolean formMain;

    /**
     * 应用id
     */
    @TableField("app_id")
    private String appId;

    /**
     * 排序
     */
    @TableField("sort")
    private Integer sort;

    /**
     * 是否绑定流程
     */
    @TableField("has_flow")
    private Boolean hasFlow;

    @TableField("create_by")
    private String createBy;

    @TableField("create_time")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @TableField("update_by")
    private String updateBy;

    @TableField("update_time")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 是否删除
     */
    @TableField("del")
    private Boolean del;

    /**
     * 是否已经被使用过
     */
    @TableField("used")
    private Boolean used;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 主表id
     */
    @TableField("parent_id")
    private String parentId;


}
